home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / as03.arc / ONLINE.ASM < prev    next >
Encoding:
Assembly Source File  |  1985-08-02  |  5.6 KB  |  236 lines

  1. TITLE        ONLINE    [8-1-85]
  2. ;
  3. LF        EQU    0AH
  4. CR        EQU    0DH
  5. NFUNC        EQU    0E3H
  6. DOSINT        EQU    21H
  7. ;
  8. CODE        SEGMENT
  9.         ASSUME    DS:CODE, SS:CODE ,CS:CODE ,ES:CODE
  10.         ORG    100H
  11. ONLINE        PROC    NEAR
  12.         JMP    START
  13.  
  14. CURSTANUM    DB 0
  15. LINKEDCNT    DB 0
  16. BINDERY     DB 0EH,'IDENTIFICATION'
  17. CHGMSG        DB 'link'
  18. HEADER        DB 1BH,'[2J╔═════════════════════════════════════════════════════════════════════════════╗',CR,LF
  19.         DB '║               Advanced Netware User List for Novell '
  20. PNET_NAME    DB '          (AHA 8508.02) ║',CR,LF
  21.         DB '╟─────────┬────────┬──────────────────────────────────────────────┬───────────╢',CR,LF
  22.         DB '║ Station │ Status │             User Identification              │  Phone    ║',CR,LF
  23.         DB '╟─────────┼────────┼──────────────────────────────────────────────┼───────────╢',CR,LF,'$'
  24. MSGLINE     DB '║   '
  25. STATION     DB '00    │ '
  26. LOLIMSG     DB 'logged │ '
  27. SPACES        DB '            '
  28. NAMSG        DB '                                   '
  29. EXTEN        DB '          ║',CR,LF,'$'
  30. CONNECT     DB '╟─────────┴────────┴──────────────────────────────────────────────┴───────────╢',CR,LF
  31.         DB '║            There are '
  32. CONCNT        DB '00 logged, and '
  33. LINCNT        DB '00 linked connections in use            ║',CR,LF,'$'
  34. TRAILER     DB '╚═════════════════════════════════════════════════════════════════════════════╝',CR,LF,'$'
  35. TXBUF        DB 2,0,16H
  36. RXSTANUM    DB 0,0
  37. RXBUF        DB 64,0,0,0,0,0,0,0
  38. BUFFER        DB '                                                '
  39.         DB 10 DUP(0)
  40. TXBUF1        DB 1,0,11H
  41. COMMAND     DB 1BH,0,61,0,1
  42. LENTH        DB 0
  43. FRAM        DB '                                         '
  44. RXBUF1        DB 82H,0
  45. RXNET_NAME    DB '                              '
  46.         DB 64 DUP(14H)
  47.         DB 128 DUP(0)
  48. ;
  49. START:        MOV    AX,CS
  50.         MOV    DS,AX
  51.         MOV    ES,AX
  52.         CALL    FILL            ;FILL BUFF WITH SPACES
  53.         MOV    SI,OFFSET TXBUF1    ;GET NETWORK NAME
  54.         MOV    DI,OFFSET RXBUF1
  55.         MOV    AH,NFUNC
  56.         INT    DOSINT
  57.         MOV    DI,OFFSET RXNET_NAME    ;MOVE NAME TO PRINT STRING
  58.         MOV    SI,OFFSET PNET_NAME
  59. GETNET:     MOV    AL,[DI]
  60.         CMP    AL,0
  61.         JZ    PHEADER
  62.         MOV    [SI],AL
  63.         INC    DI
  64.         INC    SI
  65.         JMP    SHORT    GETNET
  66.  
  67. PHEADER:    MOV    DX,OFFSET HEADER    ;PRINT HEADER
  68.         MOV    AX,0900H
  69.         INT    DOSINT
  70. GSTANUM:    INC    BYTE PTR CS:RXSTANUM    ;SET STATION NUMBER
  71.         MOV    SI,OFFSET STATION
  72.         MOV    AL,CS:RXSTANUM
  73.         CALL    CONVERT         ;MAKE PRINTABLE
  74.         CMP    BYTE PTR CS:RXSTANUM,18H    ;MORE THAN 24 ?
  75.         JNZ    CHKLINK         ;NO
  76.         JMP    CHNGMSG         ;YES, CHANGE MESSAGE
  77.  
  78. CHKLINK:    CMP    BYTE PTR CS:RXSTANUM,33H    ;MORE THAN 51 THEN LINK
  79.         JNZ    GETUSER         ;NO
  80.         JMP    EXITRTN         ;YES, THEN EXIT
  81.  
  82. GETUSER:    MOV    DI,OFFSET RXBUF     ;GET STATIONS USER
  83.         MOV    SI,OFFSET TXBUF
  84.         MOV    AX,0E300H
  85.         INT    DOSINT
  86.         CMP    BYTE PTR CS:BUFFER,0    ;NO USER?
  87.         JZ    GSTANUM         ;NO
  88.         INC    BYTE PTR CS:CURSTANUM    ;BUMP STATION
  89.         CMP    BYTE PTR CS:RXSTANUM,18H    ;MORE THEN 24?
  90.         JLE    GETUSE1         ;NO
  91.         INC    BYTE PTR CS:LINKEDCNT    ;BUMP LINKED COUNT
  92. GETUSE1:    MOV    SI,OFFSET BUFFER    ;MOVE TO PRINT BUFFER
  93.         MOV    DI,OFFSET SPACES
  94.         MOV    CX,0CH            ;12 CHARACTERS
  95. GETUSE2:    MOV    AL,[SI]         ;GET
  96.         CMP    AL,0            ;LAST BYTE?
  97.         JZ    GETPROP         ;YES
  98.         MOV    [DI],AL         ;MOVE
  99.         INC    SI            ;BUMP POINTERS
  100.         INC    DI
  101.         DEC    CX
  102.         CMP    CX,0
  103.         JNZ    GETUSE2         ;LOOP
  104. GETPROP:    MOV    SI,OFFSET BUFFER    ;SETUP FOR GET PROPERTIES CALL
  105.         MOV    DI,OFFSET FRAM
  106.         MOV    CX,0
  107. GETPRO1:    MOV    AL,[SI]
  108.         CMP    AL,0            ;LAST BYTE?
  109.         JZ    GETPRO2
  110.         MOV    [DI],AL
  111.         INC    SI
  112.         INC    DI
  113.         INC    CX
  114.         CMP    CX,0EH            ;MOVE 15 BYTES
  115.         JNZ    GETPRO1
  116. GETPRO2:    MOV    CS:LENTH,CL        ;SAVE LENGTH
  117.         MOV    AL,1            ;MARK
  118.         MOV    [DI],AL
  119.         INC    DI            ;BUMP POINTER
  120.         MOV    SI,OFFSET BINDERY    ;SET IDENTIFY COMMAND
  121.         MOV    CX,0FH
  122. GETPRO3:    MOV    AL,[SI]
  123.         MOV    [DI],AL
  124.         INC    SI
  125.         INC    DI
  126.         DEC    CX
  127.         CMP    CX,0            ;LAST BYTE?
  128.         JNZ    GETPRO3
  129.         MOV    AL,CS:FRAM        ;CHECK FOR SUPERVISOR
  130.         CMP    AL,53H    ;'S'
  131.         JNZ    READPRO         ;NO
  132.         MOV    AL,1EH            ;YES SET NEW LENGTH
  133.         MOV    CS:COMMAND,AL
  134. READPRO:    MOV    SI,OFFSET COMMAND    ;READ PROPERTY VALUE
  135.         MOV    DI,OFFSET RXBUF1
  136.         MOV    AH,NFUNC
  137.         INT    DOSINT
  138.         MOV    SI,OFFSET RXNET_NAME    ;MOVE TO PRINT STRING
  139.         MOV    DI,OFFSET NAMSG
  140. MOVEPRO:    MOV    AL,[SI]
  141.         CMP    AL,0            ;LAST BYTE?
  142.         JZ    PRINTLINE
  143.         MOV    BX,[SI]         ;CHECK FOR SPACES
  144.         CMP    BX,2020H
  145.         JZ    SCANEXT         ;YES SCAN EXTENSION
  146.         MOV    [DI],AL
  147.         INC    SI
  148.         INC    DI
  149.         INC    CX
  150.         CMP    CX,80H            ;MOVE 128 BYTES
  151.         JNZ    MOVEPRO
  152. SCANEXT:    MOV    DI,OFFSET RXBUF1    ;SCAN EXTENTSION
  153.         MOV    AL,2DH    ;'-'
  154.         MOV    CX,78H    ;'x'
  155.         CLD
  156.         REPNZ    SCASB
  157.         JCXZ    PRINTLINE
  158.         DEC    DI
  159.         DEC    DI
  160.         DEC    DI
  161.         DEC    DI
  162.         MOV    SI,OFFSET EXTEN
  163.         MOV    CX,8
  164. MOVEXT:     MOV    AL,[DI]
  165.         CMP    AL,0
  166.         JZ    PRINTLINE
  167.         MOV    [SI],AL
  168.         INC    DI
  169.         INC    SI
  170.         DEC    CX
  171.         CMP    CX,0
  172.         JNZ    MOVEXT
  173. PRINTLINE:    MOV    NAMSG+33,'│'
  174.         MOV    DX,OFFSET MSGLINE    ;PRINT LINE OF DATA
  175.         MOV    AH,9
  176.         INT    DOSINT
  177.         CALL    FILL            ;REFILL BUFFER WITH SPACES
  178.         JMP    GSTANUM
  179.  
  180. EXITRTN:    MOV    SI,OFFSET CONCNT    ;POINT TO STATION COUNT
  181.         MOV    AL,CS:CURSTANUM     ;CONVERT TO PRINTABLE
  182.         MOV    AH,CS:LINKEDCNT
  183.         SUB    AL,AH
  184.         CALL    CONVERT
  185.         MOV    SI,OFFSET LINCNT    ;POINT TO LINKED COUNT
  186.         MOV    AL,CS:LINKEDCNT     ;CONVERT TO PRINTABLE
  187.         CALL    CONVERT
  188.         MOV    DX,OFFSET CONNECT    ;PRINT ENDING MESSAGE
  189.         MOV    AH,9
  190.         INT    DOSINT
  191.         MOV    DX,OFFSET TRAILER    ;PRINT ENDING BOX LINE
  192.         MOV    AH,9
  193.         INT    DOSINT
  194.         INT    20H            ;TERMINATE PROGRAM
  195. CHNGMSG:    MOV    SI,OFFSET CHGMSG    ;CHANGE LOGGED TO LINKED
  196.         MOV    DI,OFFSET LOLIMSG
  197.         MOV    CX,4
  198. CHNGMS1:    MOV    AL,[SI]
  199.         MOV    [DI],AL
  200.         INC    DI
  201.         INC    SI
  202.         DEC    CX
  203.         CMP    CX,0
  204.         JNZ    CHNGMS1
  205.         JMP    CHKLINK
  206.  
  207. FILL:        MOV    DI,OFFSET SPACES    ;FILL BUFFER WITH SPACES
  208.         MOV    AX,2020H
  209.         MOV    CX,38H    ;'8'
  210. FILL2:        MOV    [DI],AX
  211.         INC    DI
  212.         DEC    CX
  213.         CMP    CX,0
  214.         JNZ    FILL2
  215.         RET
  216. ONLINE        ENDP
  217. CONVERT     PROC    NEAR            ;CONVERT TO PRINABLE NUMBER
  218.         MOV    AH,0
  219.         MOV    CX,0AH
  220.         MOV    DX,0
  221.         DIV    CX
  222.         MOV    BX,DX
  223.         ADD    AL,'0'
  224.         MOV    [SI],AL
  225.         MOV    AX,BX
  226.         MOV    CX,1
  227.         MOV    DX,0
  228.         DIV    CX
  229.         ADD    AL,'0'
  230.         MOV    [SI+1],AL
  231.         RET
  232. CONVERT     ENDP
  233.         CODE    ENDS
  234. ;
  235.         END    ONLINE
  236.